home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 43 / Amiga Format CD43 (1999)(Future Publishing)(GB)(Track 1 of 2)[!][issue 1999-09].iso / -serious- / programming / other / flexcat / lib / oberon_v38.sd < prev    next >
Text File  |  1999-06-14  |  2KB  |  80 lines

  1. ##stringtype Oberon
  2. ##shortstrings
  3. (****************************************************************
  4.    This file was created automatically by `%fv'
  5.    from "%f0".
  6.  
  7.    Do NOT edit by hand!
  8. ****************************************************************)
  9.  
  10. MODULE %b;
  11.  
  12.  
  13. IMPORT
  14.   lo := Locale, e := Exec, u := Utility, y := SYSTEM;
  15.  
  16. CONST
  17.   builtinlanguage = %l;
  18.   version = %v;
  19.  
  20.   %i* = %d;\n%iSTR = %s;\n\n
  21.  
  22.  
  23. TYPE
  24.   AppString = STRUCT
  25.      id  : LONGINT;
  26.      str : e.STRPTR;
  27.   END;
  28.   AppStringArray = ARRAY %n OF AppString;
  29.  
  30. CONST
  31.   AppStrings = AppStringArray (
  32.     %i, y.ADR(%iSTR)%(,)
  33.   );
  34.  
  35. VAR
  36.   catalog : lo.CatalogPtr;
  37.  
  38.   PROCEDURE CloseCatalog*();
  39.     BEGIN
  40.       IF catalog # NIL THEN lo.CloseCatalog (catalog); catalog:=NIL END;
  41.    END CloseCatalog;
  42.  
  43.   PROCEDURE OpenCatalog*(loc:lo.LocalePtr; language:ARRAY OF CHAR);
  44.     VAR Tag : u.Tags4;
  45.     BEGIN
  46.       CloseCatalog();
  47.       IF (catalog = NIL) & (lo.base # NIL) THEN
  48.     Tag:= u.Tags4(lo.BuiltInLanguage, y.ADR(builtinlanguage),
  49.               u.skip, u.done, lo.Version, version, u.done, u.done);
  50.     IF language # "" THEN
  51.       Tag[1].tag:= lo.Language; Tag[1].data:= y.ADR(language);
  52.     END;
  53.     catalog := lo.OpenCatalogA (loc, "%b.catalog", Tag);
  54.       END;
  55.     END OpenCatalog;
  56.  
  57.   PROCEDURE GetString* (num: LONGINT): e.STRPTR;
  58.     VAR
  59.       i: LONGINT;
  60.       default: e.STRPTR;
  61.     BEGIN
  62.       i := 0; WHILE (i < %n) AND (AppStrings[i].id # num) DO INC (i) END;
  63.  
  64.       IF i # %n THEN
  65.       default := AppStrings[i].str;
  66.       ELSE
  67.     default := NIL;
  68.       END;
  69.  
  70.       IF catalog # NIL THEN
  71.     RETURN lo.GetCatalogStr (catalog, num, default^);
  72.       ELSE
  73.     RETURN default;
  74.       END;
  75.     END GetString;
  76.  
  77. CLOSE
  78.   CloseCatalog();
  79. END Chaos.
  80.